<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>XML-RPC.Net - History</title>
<meta name="keywords" content="Charles Cook, XML-RPC, xmlrpc, .Net, C#, Cook Computing" />
<link href="./css/styles.css" rel="stylesheet" type="text/css"/>
<!--[if IE]>
<link href="./css/styles_ie.css" rel="stylesheet" type="text/css">			
<![endif]-->
</head>

<body>

<div id="googlead">
<script type="text/javascript"><!--
google_ad_client = "pub-3136777794181980";
google_alternate_color = "E6E6E6";
google_ad_width = 120;
google_ad_height = 600;
google_ad_format = "120x600_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--></script>
<script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>

<div id="googlink" >
<script type="text/javascript"><!--
google_ad_client = "pub-3136777794181980";
google_alternate_color = "E6E6E6";
google_ad_width = 120;
google_ad_height = 90;
google_ad_format = "120x90_0ads_al_s";
google_ad_channel ="";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--></script>
<script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>

</div>



<div id="content">
<div id="headermenu" >
        <a href="./index.html">Home</a>
</div>

<h1>XML-RPC.NET - History</h1>

<h2>2.2.0</h2>
<a href="http://xmlrpcnet.googlecode.com/files/xml-rpc.net.2.2.0.zip">xml-rpc.net.2.2.0.zip</a> 
</p>

<p>New features and changes:</p>

<ul>

<li>
Support for using System.Net.HttpListener to implement an XML-RPC server. 
(<a href="./faq/xmlrpcnetfaq.html#3.12">more</a>). 
</li>

<li>
Allow client to configure that &lt;string&gt; tag is not used for 
string values. 
(<a href="./faq/xmlrpcnetfaq.html#2.30">more</a>). 
</li>

<li>
Server configuration using XmlRpcServiceAttribute. 
(<a href="./faq/xmlrpcnetfaq.html#3.13">more</a>). 
</li>

<li>
Client support for Accept-Encoding - gzip and deflate. 
(<a href="./faq/xmlrpcnetfaq.html#2.31">more</a>). 
</li>

<li>
Changes:
<ul>
<li>
Fixed null exception if acquiring request stream fails while logging.
</li>
<li>
Fixed stack overflow in GetXmlRpcType if invalid types such as DBNull passed in.
</li>
<li>
Fixed handling of params method parameter if it is first parameter of method.
</li>
<li>
Improved error reporting when processing params parameters.
</li>
<li>
Throw XmlRpcDupXmlRpcMethodNames if same XML-RPC name applied to two methods.
</li>
<li>
Handle zero offset timezones when AllowNonStandardDateTime flag set.
</li>

</ul>
</li>

</ul>  







<h2>2.1.0</h2>

<a href="http://www.xml-rpc.net/release/xml-rpc.net.2.1.0.zip">xml-rpc.net.2.1.0.zip</a> </p>

<p>New features and changes:</p>

<ul>

<li>
Add support for proxy interfaces with overloaded methods. 
(<a href="./faq/xmlrpcnetfaq.html#2.28">more</a>). 
</li>

<li>
Add support for the int?, bool?, double?, and DateTime? nullable types to 
represent struct member types (.NET 2.0 version). These can be used to support 
optional struct members of int, boolean, double, and dateTime.iso8601 types. 
(<a href="./faq/xmlrpcnetfaq.html#NullableTypes">more</a>). 
</li>

</ul>  





<h2>2.0.0</h2>

<a href="http://www.xml-rpc.net/release/xml-rpc.net.2.0.0.zip">xml-rpc.net.2.0.0.zip</a> </p>

<p>New features and changes:</p>

<ul>

<li>
Add generic form of XmlRpcProxyGen.Create() to remove need to cast the result
of Create to the relevant interface (v2 assembly only) 
(<a href="./faq/xmlrpcnetfaq.html#2.1">more</a>). 
</li>

<li>
Add support for XmlRpcNonStandard.AllowInvalidHttpContent to handle 
HTTP response content which has whitespace before the start of the XML-RPC 
response (<a href="./faq/xmlrpcnetfaq.html#2.22">more</a>). 
</li>

<li>
Switch from NAnt to MSBuild and now builds a .NET 2.0 assembly as well as a
.NET 1.0 assembly. Note that the 1.0 assembly can be used on all versions of
the .NET runtime and should be used where backwards compatibility is required.
The 2.0 assembly contains enhancements which rely on features of .NET 2.0 such 
as generics and can only be used on the .NET 2.0 and later versions of the 
runtime (<a href="./faq/xmlrpcnetfaq.html#6.13">more</a>). 
</li>

<li>
Error handling
<ul>
<li>
Throws XmlRpcInvalidParametersException if the parameters array passed to
XmlRpcClientProtocol.Invoke contains more parameters than are defined for the
method being invoked. 
</li>

<li>
Throws XmlRpcInvalidXmlRpcException if a struct member is missing its name
or value child element or if it has a duplicate name or value child element. 
</li>

<li>
Attempt to serialize type with one or more properties that cannot be serialized
to an XML-RPC type now results in the correct exception being thrown: 
XmlRpcUnsupportedTypeException.
</li>

</ul>
</li>

<li>
Samples:
<ul>
<li>
Modify samples to use IXmlRpcProxy interface.
</li>
<li>
Fix threading issue in AsyncBettyApplication sample.
</li>
</ul>
</li>

</ul>  


<h2>1.0.0</h2>

<p><a href="http://www.xml-rpc.net/release/xml-rpc.net.1.0.0.zip">xml-rpc.net.1.0.0.zip</a> </p>

<p>New features and changes:</p>

<ul>
   <li>IXmlRpcProxy interface to simplify setting proxy properties 
        (<a href="./faq/xmlrpcnetfaq.html#2.1">more</a>).</li>
   <li>Expect100Continue property on XmlRpcClientProtocol to configure 
       "Expect: 100-continue" header; default is header not sent
       (<a href="./faq/xmlrpcnetfaq.html#2.24">more</a>).
       <ul>
            <li>Note: default behavior in previous versions of XML-RPC.NET
                was to send this header.
            </li>
       </ul>
   </li>
   <li>Support for variable number of method parameters using params 
        (<a href="./faq/xmlrpcnetfaq.html#2.20">more</a>).</li>
   <li>Configurable client support for server which don't comply with XML-RPC standard:
        <ul>
           <li>UseIntTag proxy property to use &lt;int&gt; instead of &lt;i4&gt;.</li>
           <li>Support dateTime with all zeroes (e.g. eGroupWare).</li>
           <li>Support empty dateTime values.</li>
           <li>Support fault code returned as string.</li>
           <li>Support for non-standard dateTime formats</li>
           <li>Note: default is standard XML-RPC only. Existing code which relies
                on non-standard behaviour will need to configure the proxy
                NonStandard property
                (<a href="./faq/xmlrpcnetfaq.html#2.22">more</a>).</li>
        </ul>
   </li>
   <li>Support for sending cookies with request (thanks to JC Bertin) 
        (<a href="./faq/xmlrpcnetfaq.html#2.7">more</a>).</li>
   <li>Changes:
        <ul>
           <li>Fix for when passing zero-length byte array as base64 value.</li>
           <li>Removed large switch statements to circumvent Microsoft .NET bug when 
                running in version 2.0 of the .NET runtime with medium trust.</li>
           <li>Uses invariant DateTimeFormatInfo when parsing dateTime.iso8601 
                so parsing works in all locales</li>    
           <li>Check for recursive data structures when serializing.</li>    
           <li>Fix to allow XmlRpcStruct member to be set more than once.</li>    
           <li>Prevent types which cannot be serialized from being added to 
                XmlRpcStruct.</li>    
           <li>Improved error handling for null values when serializing.</li>
           <li>Fix to XmlRpcServerFormatterSink suggested by Sean Rohead.</li>
        </ul>
   </li>     
   <li>Sample code:
        <ul>
           <li>Updates on sample blogging interfaces from Sam Schillace and Mikahosi.</li>
           <li>Sample code for accessing <a href="http://www.opendht.org/">OpenDHT</a> (thanks to Michel Foucault).</li>
        </ul>
   </li>
</ul>


<h2>0.9.2</h2>
<p><a href="http://www.xml-rpc.net/release/xml-rpc.net.0.9.2.zip">xml-rpc.net.0.9.2.zip</a> </p>
<ul>
   <li>Fixed parsing struct containing an enum member.</li>
   <li>Lock around generation of proxy type.</li>
   <li>When generating proxy from interface now includes methods from base interfaces.</li>
   <li>Added RequestEvent and ResponseEvent events to XmlRpcClientProtocol.</li>
   <li>Added XmlRpcLogger class for ease of use of RequestEvent and ResponseEvent events.</li>
   <li>Adding LoggingEample sample.</li>
   <li>Support for XmlRpcMissingMapping attribute on properties.</li>
   <li>Invalid struct elements ignored if mapping action is Ignore.</li>
   <li>Fixed dateTime issue with Wareki calendar.</li>
   <li>Fixed problem with serializing void return.</li>
   <li>Modified call to DeserializeResponse in DeserializeMessage.</li>
   <li>Handles case when server incorrectly returns fault code as a string.</li>
   <li>XmlRpcStruct restricted to string keys.</li>
</ul>


<h2>0.9.1</h2>
<p><a href="http://www.xml-rpc.net/release/xml-rpc.net.0.9.1.zip">xml-rpc.net.0.9.1.zip</a> </p>
<ul>
   <li>Distribution includes version of library which runs on .NET Compact Framework.</li>
   <li>DateTime parsing bug fixed (caused problems in particular with it-IT locale)</li>
   <li>XmlRpcProxyGen caches generated assemblies to avoid leakage if XmlRpcProxyGen 
       is called multiple times for the same interface.</li> 
</ul>


<h2>0.9.0</h2>
<p><a href="http://www.xml-rpc.net/release/xml-rpc.net.0.9.0.zip">xml-rpc.net.0.9.0.zip</a> </p>
<ul>
  <li>XmlRpcServiceAttribute has a new AutoDocumentation property which allows automatic documentation to be switched off.</li>
  <li>Handles XML-RPC response encodings other than UTF-8.</li>
  <li>XmlRpcMemberAttribute fixed.</li>
  <li>XmlRpcClientProtocol has new ProtocolVersion property to allow HTTP v1.0 to be specified.</li>
  <li>XmlRpcClientProtocol has new KeepAlive property (default is true). With some servers it may be necessary 
      to set this to false when running with the current beta of the 2.0 CLR, for example if you start 
      seeing the "Underlying Connection Was Closed" exception or the second call on a proxy appears to hang.</li>
  <li>Multi-dimensional arrays handled correctly.</li>  
  <li>dateTime parsing supports "yyyy-MM-ddTHH:mm:ss" to handle blog service providers which return invalid 
      XML-RPC dateTime values in this format.</li>
  <li>Includes Joe Bork's xmlrpcgen utility to generate source code for proxies.</li>
  <li>Release runs on version 1.0 of CLR upwards.</li>
</ul>

<h2>0.8.0</h2>
<p><a href="http://www.xml-rpc.net/release/xml-rpc.net.0.8.0.zip">xml-rpc.net.0.8.0.zip</a> </p>
<ul>
  <li>optional struct members</li>
  <li>The zip file contains a bin directory containing:</li>
</ul>
<ul>
  <li><b>CookComputing.XmlRpc.dll</b></li>
  <li><b>bettyapp.exe </b>(A WinForms application which calls the UserLand betty 
    example server.)</li>
  <li><b>asyncbettyapp.exe</b> (Another WinForms app illustrating how to make 
    async calls.)</li>
  <li><b>mathservice.exe</b> (A simple XML-RPC service.)</li>
  <li><b>mathapp.exe </b>(A WinForms application which calls MathService.)</li>
</ul>
<h2>0.7.1</h2>
<p><a href="http://www.xml-rpc.net/release/xml-rpc.net.0.7.1.zip">xml-rpc.net.0.7.1.zip</a> </p>
<ul>
  <li>License change.</li>
  <li>Fixed problem in XmlRpcServerFormatterSink.cs whereby an exception was thrown 
    if the XML-RPC and .NET method names are different.</li>

</ul>
<h3></h3>
<h2>0.7.0</h2>
<p><a href="http://www.xml-rpc.net/release/xml-rpc.net.0.7.0.zip">xml-rpc.net.0.7.0.zip</a> </p>
<ul>
  <li>error reporting of parsing errors using parse stack</li>
  <li>support for async proxy method generation</li>
  <li>contiuning work on auto-generated documentation</li>
  <li>params keywords used in XmlRpcClientProtocol.Invoke</li>
  <li>server method can return void (return empty string in XML-RPC response)</li>
  <li> proxy method can return void (return value in XML-RPC response discarded)</li>
  <li>deserializer throws exception if an XML-RPC struct is missing one or more 
    expected members</li>
  <li>fixed irritating warning when compiling XmlRpcStruct</li>
  <li>add version of BeginInvoke taking correct params as per docs</li>
  <li>Close always called on WebResponse </li>
  <li>fixed usage of XmlRpcClientProtocol Proxy property when used in VS designer 
    (Drew Marsh)</li>
  <li>fixed handling of response without Content-Length during async calls (Dmitry 
    Jemerov)</li>
  <li>fixed case when zero-length string in default string value is passed as 
    &lt;value/&gt; (Drew Marsh)</li>
  <li>The zip file contains a bin directory containing:</li>
</ul>
<ul>
  <li><b>CookComputing.XmlRpc.dll</b></li>
  <li><b>bettyapp.exe </b>(A WinForms application which calls the UserLand betty 
    example server.)</li>
  <li><b>asyncbettyapp.exe</b> (Another WinForms app illustrating how to make 
    async calls.)</li>
  <li><b>mathservice.exe</b> (A simple XML-RPC service.)</li>
  <li><b>mathapp.exe </b>(A WinForms application which calls MathService.)</li>
</ul>

<h3>Limitations of Current Release</h3>
<ul>
  <li>Auto-documentation generation not fully implemented.</li>
  <li>No tracing/logging functionality.</li>
</ul>

<h3>0.6.0</h3>
<p><a href="http://www.xml-rpc.net/release/xml-rpc.net.0.6.0.zip">xml-rpc.net.0.6.0.zip</a></p>
<ul>
  <li>Fixed UserAgent property of XmlRpcClientProtocol.</li>
  <li>Added Proxy property to XmlRpcClientProtocol.</li>
  <li>Default for XML-RPC request XML document is no explicit encoding, i.e. implicitly 
    UTF-8.</li>
  <li>Added Encoding property to XmlRpcClientProtocol to set explicit encoding 
    on XML-RPC request XML document</li>
  <li>Can now use interface to define XML-RPC methods. For example can use same 
    interface to implement both server and client. MathService changed to illustrate 
    use of interface.</li>
  <li>Added XmlRpcProxyGen class to dynamically create a proxy object from an 
    interface, i.e. makes hand-coding of proxies unnecessary in most cases. bettyapp 
    sample changed to illustrate this.</li>
  <li>Fixed parsing of double type to be culture independent.</li>
  <li>Fault response XML document now generated in same way as ordinary response, 
    i.e. will be in same format and encoding.</li>
</ul>

<h3>0.5.5</h3>
<p><a href="http://www.xml-rpc.net/release/xml-rpc.net.0.5.5.zip">xml-rpc.net.0.5.5.zip</a> 
</p>
<ul>
  <li>Added ClientCertificates property to XmlRpcClientProtocol<br/>
  </li>
  <li>The zip file contains a bin directory containing:</li>
</ul>
<ul>
  <li><b>CookComputing.XmlRpc.dll</b></li>
  <li><b>bettyapp.exe </b>(A WinForms application which calls the UserLand betty 
    example server.)</li>
  <li><b>asyncbettyapp.exe</b> (Another WinForms app illustrating how to make 
    async calls.)</li>
  <li><b>mathservice.exe</b> (A simple XML-RPC service.)</li>
  <li><b>mathapp.exe </b>(A WinForms application which calls MathService.)</li>
</ul>
<h4>Limitations of Current Release<br/>
</h4>
<ul>
  <li>Auto-documentation generation not fully implemented.</li>
  <li>No tracing/logging functionality.</li>
</ul>

<h3>0.5.4</h3>
<p><a href="http://www.xml-rpc.net/release/xml-rpc.net.0.5.4.zip">xml-rpc.net.0.5.4.zip</a></p>
<ul>
  <li>Added Headers property to XmlRpcClientProtocol. </li>
  <li>Added XmlRpcMemberAttribute. </li>
  <li>Modified deserialization of arrays to return more specific array type when 
    all elements are of the same type.</li>
</ul>

<h3>0.5.3</h3>
<p><a href="http://www.xml-rpc.net/release/xml-rpc.net.0.5.3.zip">xml-rpc.net.0.5.3.zip</a></p>
<ul>
  <li>Fixed problem with deserializing arrays.</li>
</ul>

<h3>0.5.2</h3>
<p><a href="http://www.xml-rpc.net/release/xml-rpc.net.0.5.2.zip">xml-rpc.net.0.5.2.zip</a></p>
<ul>
  <li>Improved handling of XmlRpcFaultException in server formatter sink..</li>
</ul>

<h3>0.5.1</h3>
<p><a href="http://www.xml-rpc.net/release/xml-rpc.net.0.5.1.zip">xml-rpc.net.0.5.1.zip</a></p>
<ul>
  <li>Improved handling of XmlRpcFaultException in server formatter sink..</li>
</ul>

<h3>0.5.0</h3>
<p><a href="http://www.xml-rpc.net/release/xml-rpc.net.0.5.0.zip">xml-rpc.net.0.5.0.zip</a></p>
<ul>
  <li>Interim release containing preliminary code for client and server NET Remoting 
    formatter sinks.</li>
  <li>A Remoting sample, with assemblies and config files.</li>
</ul>

<h3>0.4.3</h3>
<p><a href="http://www.xml-rpc.net/release/xml-rpc.net.0.4.3.zip">xml-rpc.net.0.4.3.zip</a></p>
<ul>
  <li>Interim release containing bug fixes, mainly in the serialization/deserialization 
    code.</li>
  <li>Some restructuring in preparation for some major changes in the 0.5 series 
    of releases.</li>
</ul>

<h3>0.4.2</h3>
<p><a href="http://www.xml-rpc.net/release/xml-rpc.net.0.4.2.zip">xml-rpc.net.0.4.2.zip</a></p>
<ul>
  <li>Build for .NET RTM.</li>
  <li>Added preliminary support for Introspection API.</li>
</ul>

<h3>0.4.1</h3>
<p><a href="http://www.xml-rpc.net/release/xml-rpc.net.0.4.1.zip">xml-rpc.net.0.4.1.zip</a></p>
<ul>
  <li>Major changes to XmlRpcClientProtocol class to support async calls, working 
    but coding not completed.</li>
  <li>Extra sample - AsyncBettyApp - to illustrate async calls.</li>
</ul>

<h3>0.4.0</h3>
<p>Initial release for .NET beta 2.</p>
<p><a href="http://www.xml-rpc.net/release/xml-rpc.net.0.4.0.zip">xml-rpc.net.0.4.0.zip</a></p>
<h3>0.3.0</h3>
<p>Initial release for .NET beta 1.</p>
<h2>Developers</h2>
<p>Lead Developer - Charles Cook.</p>

<h2>License</h2>
<p>XML-RPC.NET is released under the terms of the <a href="http://www.opensource.org/licenses/mit-license.html">MIT 
  X11</a> license. </p>
<h2>Contact</h2>
<p>Please contact <script language="JavaScript" type="text/javascript">
<!--
document.write('<a href="mailto:' + '&#99;&#104;&#97;&#115;' +'&#99;&#111;&#111;&#107;' 
+ '&#64;' 
+ '&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;' + '" title="Charles Cook">' + 'Charles Cook' + '</a>');
// -->
</script> 
  with any feedback or suggestions for XML-RPC.NET. </p>
<p>&nbsp;</p>
<p style="font-size: x-small;">
Charles Cook, 2001-2008 All Rights Reserved. 4th April 2008
</p>

</div>

<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-444146-2";
urchinTracker();
</script>

</body>

</html>
